Update mgca to use type const syntax instead of the #[type_const] attribute. #152324
Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom Feb 10, 2026
Merged
Update mgca to use type const syntax instead of the #[type_const] attribute. #152324rust-bors[bot] merged 1 commit intorust-lang:mainfrom
type const syntax instead of the #[type_const] attribute. #152324rust-bors[bot] merged 1 commit intorust-lang:mainfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
View all comments
This PR changes the
#[type_const]attribute to thetype constsyntax for #132980.This will fixes #151273 and similar issues, since we need to check
type constof items before expansion. The move to add a syntax was mentioned here: #151289 (comment)The first part of this PR adds support by allowing
type const <IDENT>: <TYPE> { = <EXPR> };syntax inrustc_parse/src/parser/item.rs.The next part since the AST item does not contain enough information to determine if we have a
type constwas reworkConstItemRhsintoConstItemRhsKindto store the information since we no longer have the attribute acting as a source of extra data/metadata.The hir node
ConstItemRhsKindcurrent shape mostly works, except in the case ofTraitItemKindwhere it is an option. I initially went about givinghir::ConstItemRhsKinda similar form the AST, but it touches a lot more lines of code and files so because of that, the less invasive option was to add a simple boolean flag toTraitItemKind.The forth part of this PR includes adding a query I called
is_rhs_type_constso that we can handle both local and foreign def_ids.The fifth aspect of the PR is adding a
mgca_type_const_syntaxfeature gate that is checked before expansion. The standard mgca feature gate is ran after expansion. This feature gate allows for conditional compilation (e.g #[cfg(..)]) of thetype constsyntax in nightly withoutmin_generic_const_argsbeing enabled.The last bit is updating all the the tests that used the
#[type_const]attribute to use the new syntax that failed because of the changes. This is the bulk of touched/edited files in the PR.r? @BoxyUwU
@rustbot label +F-associated_const_equality +F-min_generic_const_args